Tag: expression式

如何匹配,但不捕获正则expression式的一部分?

我有一个string列表。 其中一些是123-…456的forms。 可变部分“…”可以是: string“苹果”,后面跟一个连字符,例如123-apple-456 string“香蕉”后跟一个连字符,例如123-banana-456 一个空白string,例如123-456 (注意只有一个连字符) “apple”或“banana”以外的任何词都是无效的。 对于这三种情况,我想分别匹配“苹果”,“香蕉”和“”。 请注意,我不想捕捉连字符,但我总是想要匹配它。 如果string不是如上所述的forms123-…456 ,则根本不匹配。 我如何写一个正则expression式来做到这一点? 假设我有一个风格,允许向前看,向后看,周围和非捕获组。 这里关键的观察是,当你有“苹果”或“香蕉”,你也必须有尾随连字符,但你不想匹配它。 而当你匹配空白string,你不能有尾随连字符。 封装这个断言的正则expression式是正确的,我想。

Grep正则expression式不包含string

我正在传递一个正则expression式列表来grep检查系统日志文件。 他们通常匹配一个IP地址和日志条目; grep "1\.2\.3\.4.*Has exploded" syslog.log 这只是一个模式列表,如"1\.2\.3\.4.*Has exploded"部分,我正在通过一个循环,所以我不能通过“-v”例如。 我很困惑,试图做上面的逆,一个不匹配具有一定的IP地址和错误的线路,所以“!1.2.3.4。*爆炸了”将匹配syslog行以外的其他任何东西1.2.3.4告诉我它已经爆炸。 我必须能够包含一个IP不匹配。 我已经看到了StackOverflor上的各种类似的post,但是他们使用正则expression式,我似乎无法使用grep 。 任何人都可以提供一个grep工作的例子吗? 更新:这是发生在这样的脚本; patterns[1]="1\.2\.3\.4.*Has exploded" patterns[2]="5\.6\.7\.8.*Has died" patterns[3]="\!9\.10\.11\.12.*Has exploded" for i in {1..3} do grep "${patterns[$i]}" logfile.log done

使用wget下载整个目录

我试图下载文件的项目使用wget作为该项目的SVN服务器不再运行,我只能够通过浏览器访问文件。 所有文件的基本URL是相同的 – http://abc.tamu.edu/projects/tzivi/repository/revisions/2/raw/tzivi/ * 如何使用wget或任何其他工具下载“tzivi”文件夹是根文件夹中的所有文件,并在其下有多个文件和子文件夹(最多2或3个级别)。

为RegExp键入

无论如何检测一个JavaScript对象是否是一个正则expression式? 例如,我想要做这样的事情: var t = /^foo(bar)?$/i; alert(typeof t); //I want this to return "regexp" 这可能吗? 谢谢! 编辑:感谢所有的答案。 看来我有两个很好的select: obj.constructor.name === "RegExp" 要么 obj instanceof RegExp 任何方法的主要优点/缺点? 再次感谢!

如何在Scala中使用正则expression式进行模式匹配?

我希望能够find一个单词的第一个字母和一个组中的一个字母,如“ABC”之间的匹配。 在伪代码中,这可能看起来像这样: case Process(word) => word.firstLetter match { case([ac][AC]) => case _ => } } 但是,如何获取Scala中的第一个字母,而不是Java呢? 如何正确expression正则expression式? 是否有可能在一个案例课中做到这一点?

将Javastring从全部大写字母(由下划线分隔的string)转换为CamelCase(无字分隔符)的最简单方法是什么?

标题基本概括了所有内容。 什么是最简单/最优雅的方式,我可以在Java中将string从"THIS_IS_AN_EXAMPLE_STRING"格式转换为"THIS_IS_AN_EXAMPLE_STRING"格式? 我认为必须至less有一种方法来使用String.replaceAll()和正则expression式。 我最初的想法是:用下划线( _ )前缀string,将整个string转换为小写,然后使用replaceAll将每个字符前面带有下划线的大写版本转换。

Vim中的多行正则expression式支持

我注意到跨多行匹配的标准正则expression式语法是使用/ s,如下所示: This is\nsome text /This.*text/s 这在Perl中可行,但在Vim中似乎不受支持。 相反,我必须更加具体: /This[^\r\n]*[\r\n]*text/ 我找不到为什么这个应该是什么原因,所以我想我可能只是错过了在vim帮助相关的位。 任何人都可以确认这种行为吗?

Eclipse,正则expression式search和replace

在eclipse中,执行正则expression式search和replace时,是否可以使用匹配的searchstring作为replacestring的一部分? 基本上,我想replace所有的事件 variableName.someMethod() 有: ((TypeName)variableName.someMethod()) 其中variableName可以是任何variables名称。 在sed我可以使用像这样的东西: s/[a-zA-Z]+\.someMethod\(\)/((TypeName)&)/g 即, &代表匹配的searchstring。 在Eclipse中有类似的东西吗? 谢谢!

如何组织使用sequelize的节点应用程序?

我正在寻找一个使用序列化ORM的示例nodejs应用程序。 我主要担心的是,如果由于require()依赖性循环,这些模型之间存在复杂的关系,那么在单独的js文件中定义模型几乎是不可能的。 也许人们把所有的模型定义在一个非常长的文件中? 我主要感兴趣的是如何定义模型,并通过应用程序使用。 我想有一些validation,我正在做我自己的事情是“好”的方式。

用空stringreplace非数字

在我们的项目中快速添加需求。 我们的数据库中的一个字段用于保存一个电话号码,只允许有10个字符。 所以,如果我通过“(913)-444-5555”或其他任何东西,有没有一种快捷的方式来运行一个string通过某种特殊的replacefunction,我可以通过它的一组字符允许? 正则expression式?