如果字符串具有此预测格式:
value = "hello and good morning"
Run Code Online (Sandbox Code Playgroud)
其中"(引用)也可能是'(单引号),而结束字符('或")与开头字母相同.我想匹配引号之间的字符串.
\bvalue\s*=\s*(["'])([^\1]*)\1
Run Code Online (Sandbox Code Playgroud)
(这两个是允许=符号附近的任何空格)
第一个"捕获的组"(在第一对括号内) - 应该与开头的引号匹配,后者应该是'或'然后 - 我应该允许任何数量的字符不是第一组中捕获的字符,然后我期待在组中捕获的字符(括号引号).
(必须在第二个捕获组中捕获所需的字符串).
但这不起作用.
这样做:
\bvalue\s*=\s*(['"])([^"']*)["']
Run Code Online (Sandbox Code Playgroud)
但我想确保开始和结束引号(双重或单引号)是相同的.
编辑
目标基本上是获取一个锚的开始标记,该锚具有包含在其类属性中的某个类名,我想要涵盖类属性的罕见情况,包括(')或().
根据这里的所有建议,我使用了以下模式:
<\s*\ba\b[^<>]+\bclass\s*=\s*("|'|\\"|\\')(?:(?!\1).)*\s*classname\s*(?:(?!\1).)*\1[^>]*>
Run Code Online (Sandbox Code Playgroud)
含义:
找一个标记 - 开放标志.
允许任何空格.
找到单词 a.
允许任何非关闭标记.
找到"class(任何空格)=(任何空格)"
获取开场引号,以下之一:("或'或\"或\').
来自Alan Moore的回答:允许任何不是开头报价的字符.
find classname
允许任何不是开头引号的字符.
找到与开头相同的收盘价.
允许任何unclosing-tag字符.
找到结束标记char.
好的,所以我试图在记事本++中超越第9个反向引用.维基说我可以使用组命名来超过第9个引用.但是,我似乎无法正确地进行匹配.我开始只用两组来简化.
样本数据
1000,1000
Run Code Online (Sandbox Code Playgroud)
正则表达式.
(?'a'[0-9]*),([0-9]*)
Run Code Online (Sandbox Code Playgroud)
根据文档我需要做以下事情.
(?<some name>...), (?'some name'...),(?(some name)...)
Names this group some name.
Run Code Online (Sandbox Code Playgroud)
但结果却是找不到我的文字.有什么建议?
如果我在某些文本中有以下模式:
def articleContent = "<![CDATA[ Hellow World ]]>"
Run Code Online (Sandbox Code Playgroud)
我想提取"Hellow World"部分,所以我使用以下代码来匹配它:
def contentRegex = "<![CDATA[ /(.)*/ ]]>"
def contentMatcher = ( articleContent =~ contentRegex )
println contentMatcher[0]
Run Code Online (Sandbox Code Playgroud)
但是我一直得到一个空指针异常,因为正则表达式似乎不起作用,什么是"任何文本和平"的正确正则表达式,以及如何从字符串中收集它?
我正在尝试使用正则表达式来仅擦除字符串的匹配部分.我正在使用该preg_replace函数,并试图通过在匹配部分周围加上括号来删除匹配的文本.例:
preg_replace('/text1(text2)text3/is','',$html);
Run Code Online (Sandbox Code Playgroud)
这会用''代替整个字符串.我只想删除text2,但保留text1和text3.如何匹配和替换匹配的字符串部分?
我想清理一些输入并用可接受的输入替换几个字符,例如丹麦语å"with with aa".
这是很容易使用若干语句进行,例如/æ/ae/,/å/aa/,/ø/oe/,但由于工具的限制,我希望能够做到这一点在一个单一的正则表达式.
我可以捕获所有相关的情况(/[(æ)(ø)(å)(Æ)(Ø)(Å)]/)但我更换不能按我的意愿工作(但可能完全按照预期):
$ temp="RødgrØd med flæsk"
$ echo $temp
RødgrØd med flæsk
$ echo $temp | sed 's/[(æ)(ø)(å)(Æ)(Ø)(Å)]/(ae)(oe)(aa)(Ae)(Oe)(Aa)/g'
R(ae)(oe)(aa)(Ae)(Oe)(Aa)dgr(ae)(oe)(aa)(Ae)(Oe)(Aa)d med fl(ae)(oe)(aa)(Ae)(Oe)(Aa)sk
Run Code Online (Sandbox Code Playgroud)
(第一个回声线是为了表明它不是编码问题)
另外,工具问题是我还想在Sublime Text 2片段中使用相同的正则表达式.
有谁能辨别我的正则表达式语句有什么问题?
提前致谢.
我正在使用这个正则表达式:
((?:[a-z][a-z]+))_(\d+)_((?:[a-z][a-z]+)\d+)_(\d{13})
Run Code Online (Sandbox Code Playgroud)
匹配这样的字符串:
SH_6208069141055_BC000388_20110412101855
Run Code Online (Sandbox Code Playgroud)
分为4组:
SH
6208069141055
BC000388
20110412101855
Run Code Online (Sandbox Code Playgroud)
问题:如何使第一组可选,以便生成的组是空字符串?
在可能的情况下,我想在每种情况下获得4组.
这种情况的输入字符串:(第一组后没有下划线)
6208069141055_BC000388_20110412101855
Run Code Online (Sandbox Code Playgroud) 我难以设法创建一个排除组的Emacs正则表达式.[^]排除集合中的单个字符,但我想排除特定的字符序列:类似的东西[^(not|this)],以便包含"not"或"this"的字符串不匹配.
原则上,我可以写([^n][^o][^t]|[^...]),但还有另一种更清洁的方式吗?
Nginx 正则表达式位置语法
正则表达式可以与 Nginx 位置块部分一起使用,这是通过 PCRE 引擎实现的。
由于没有完整记录,此功能究竟支持什么?
我有这个正则表达式
(?:$|^| )(one|common|word|or|another)(?:$|^| )
Run Code Online (Sandbox Code Playgroud)
除非两个单词彼此相邻,否则匹配正常.
One one's more word'word common word or another word more another
More and more years to match one or more other strings
And common word things and or
Run Code Online (Sandbox Code Playgroud)
在上面它匹配第二one行但不是or它旁边的.同为common和wordINT第三行.
实例:http://regex101.com/r/hV3wQ3
我认为这与非匹配组的数量有关.但是,我不确定如何实现匹配所有单词列表而不包含任何字符的最终目标.
我不希望onein one's或in in word'word匹配.
以下是案例.我在日志文件中寻找以下模式.
所有字符串都是AB_N或的形式CDE_N.
AB并且CDE是固定字母,后面是下划线.
N可以是2或3个数字.
我试过(AB|CDE)_\d{2,3}但是返回了一个组.我不能这样做,\w{2,3}\d{2,3}因为它必须是AB或CDE不是AC或FEG.省略括号也会中断.我确信解决方案很简单,但我是python和regex的新手,无法解决这个问题.
regex ×10
regex-group ×10
elisp ×1
emacs ×1
groovy ×1
negate ×1
nginx ×1
nginx-config ×1
notepad++ ×1
optional ×1
php ×1
preg-match ×1
python ×1
replace ×1
sed ×1
sublimetext2 ×1