我们正在使用这个正则表达式来过滤主题中的票号。
这是我们使用的正则表达式: \\[\\#(.*)\\]
主题通常是这样的: "[#20160708-0020] Hello blah blah"
正则表达式得到我们"20160708-0020",我们可以进一步使用它。
公司里有人开始写这样的邮件: "[#20160708-0020] Hello [SQL] blah blah"
所以正则表达式会让我们知道"20160708-0020] Hello [SQL"这显然是不正确的。
有没有办法告诉正则表达式在第一场比赛后停止?谢谢!:)
如何才能找到仅使用正则表达式的中间字符
例如,这显示了预期的输出
Hello - > l
world - > r
merged- > rg(偶数次发生时见这个)
hi - > hi
I - > I
我试过了
(?<=\w+).(?=\w+)
Run Code Online (Sandbox Code Playgroud) 我需要使用SUBSTRINGPostgresql 9.x 中的函数创建一个查询,以提取字符串和第一个管道出现之间的子字符串。
我的源字符串是这样的:
THIS IS MY EXAMPLE|OTHER EXAMPLE|HELLO: Kevin|OTHER EXAMPLE|OTHER EXAMPLE
Run Code Online (Sandbox Code Playgroud)
所以我创建了这个查询:
SELECT SUBSTRING(myField from 'HELLO: (.*)\|') AS test FROM myTable
Run Code Online (Sandbox Code Playgroud)
获取Kevin字符串'HELLO: '和字符管道第一次出现之间的单词,但它无法按预期工作,因为它返回Kevin|OTHER EXAMPLE|OTHER EXAMPLE.
我哪里错了?
我是正则表达式的新手,正如我所研究的,* 匹配零个或多个,+ 匹配一个或多个,所以我开始测试这个:
<?php
preg_match("/a/", 'bbba',$m);
preg_match("/a*/", 'bbba',$o);
preg_match("/a+/", 'bbba',$p);
echo '<pre>';
var_dump($m);
var_dump($o);
var_dump($p);
echo '</pre>';
?>
Run Code Online (Sandbox Code Playgroud)
但结果是 * 没有匹配任何东西并在字母 a 存在时返回空:
array(1) {
[0]=>
string(1) "a"
}
array(1) {
[0]=>
string(0) ""
}
array(1) {
[0]=>
string(1) "a"
}
Run Code Online (Sandbox Code Playgroud)
所以我想念这里。
可能重复:
在regexp中懒惰和贪婪意味着什么?
我知道在正则表达式中*,+或?之后的问号 意味着不合适,但如果我想匹配任何字符,使用(.*)或(.*?)之间的区别是什么?
谢谢.
编辑:在我的情况下,我想检查一个URL.有什么区别
http://site\.net/(.*?)\.html
Run Code Online (Sandbox Code Playgroud)
和
http://site\.net/(.*)\.html
Run Code Online (Sandbox Code Playgroud)
?
我想在字符串中获取一组匹配项。目前,我的字符串是媒体查询。我删除了媒体查询中的所有新行,因此一个媒体查询可能如下所示:
@media (max-width: 1200px) { .container { padding-left: 0px; } .bundles {padding-right:10px} }
Run Code Online (Sandbox Code Playgroud)
我想要做的是从媒体查询中获取所有类,包括它们的样式属性。所以我想要一个如下所示的数组:
[".container { padding-left: 0px; }", ".bundles {padding-right:10px}"]
Run Code Online (Sandbox Code Playgroud)
这是我的尝试:
var identifiers = mediaQuery.match(/\.(.*)}/);
Run Code Online (Sandbox Code Playgroud)
我当时假设match会给我所有比赛。但是我只得到了一场比赛,所以我一定是做错了什么。
我试图得到一个正则表达式,将在双引号字符串中找到双引号字符串.例如:
"一些文字"字符串1"和"另一根字符串"等"
我想挑出"字符串1"和"另一个字符串".
我得到了,\"[^\"]*\"但这将匹配示例中的"一些文本".我基本上需要忽略第一个和最后一个引号并在其中匹配.
编辑:提到的示例没有围绕它的文字引号,但它是一个Javascript字符串.示例正则表达式首先匹配整个字符串.我的Javascript如下.
var string = 'some "text" etc';
var pattern = new RegExp('\"[^\"]*\"/g');
var result = pattern.exec(string);
console.log("result: ", string);
// some "text" etcRun Code Online (Sandbox Code Playgroud)
所以它可能是我在Javascript中实现正则表达式的问题.
我使用grep与-P(Perl的正则表达式)上色字符串:
echo aaa bbb ccc ddd eee | grep --color=always -P "^[^#]*\K(bbb|ccc)|^"
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,我想为字符串bbb和着色ccc。但是,grep仅使最后一个(ccc)变色。
如何修改我的正则表达式,以便两个字符串都匹配并被着色?
我搜索并发现[^?]不会包含某个字符,例如本例中的问号,但它似乎包含一个空格,这不是我想要的。这种模式:
\((.*?)\)[^?]
Run Code Online (Sandbox Code Playgroud)
匹配括号中的任何内容,除非最后一个括号后面有一个问号。
(need to capture including brackets) ignore this
(ignore this completely)?
Run Code Online (Sandbox Code Playgroud)
此模式在不包含空格的情况下正确捕获括号中的顶行,但也捕获下面我想忽略的行:
\((.*?)\)
Run Code Online (Sandbox Code Playgroud)
我可以使用什么模式来捕获顶行而没有尾随空格但忽略下面的行?
您可以看到这些模式都不能正常工作:
我有一个字符串,其中每个内标串<并>
已被逆转(括号不嵌套).例如,
"hello <wolfrevokcats>, how <t uoy era>oday?"
Run Code Online (Sandbox Code Playgroud)
应该成为
"hello stackoverflow, how are you today?"
Run Code Online (Sandbox Code Playgroud)
我目前的想法是循环遍历字符串并找到哪对<和>哪些索引.然后简单地切割字符串并将切片再次放在一起,使标记之间的所有内容都反转.这是正确的方法吗?有明显/更好的解决方案吗?