我试图在另一个特定字符串之后直接匹配单引号之间的字符串。我创建了以下正则表达式,但如果给定行上有多个属性,则它不能满足我的需求。
(?<=itemId:)(.*)'(.*)'
我试图在以下示例中的itemId之后匹配单引号之间的字符串:
寻找匹配: reasonFldSt
{
itemId: 'reasonFldSt',
xtype: 'fieldset',
layout: 'hbox',
width: 550,
margin: myMargin,
在一行中有多个属性时查找相同的字符串
想要匹配: minDebitFld
{ itemId: 'minDebitFld', fieldLabel: 'Min Bal', xtype: 'numberfield' },
编辑: 我在Visual Studio IDE中使用内置的find函数,它支持正则表达式进行查询。
答案 0 :(得分:3)
使用
/itemId:\s?'(.+?)'/g
这样您只能获得itemId
的值。 Global-flag是可选的,取决于您的输入是在一行还是多行。
请参阅example@regex101。
由于您使用的是VisualStudios搜索功能,因此您必须省略分隔符和标记:
itemId:\s?'(.+?)'
如果您想从搜索结果中排除 itemId 一词,可以使用
(?<=itemId:\s?)'.+?'
这样VS只会标记值的内容,包括'
(在VS2012中测试)。
答案 1 :(得分:2)
RegExp:/(?<=(itemid:\s\')|(itemid:\'))([^\']*)(?=\')/gi
DEMO - http://regexr.com?37tfk
答案 2 :(得分:1)