正则表达式,某些字符串后单引号之间的匹配

时间:2014-01-07 20:26:22

标签: regex

我试图在另一个特定字符串之后直接匹配单引号之间的字符串。我创建了以下正则表达式,但如果给定行上有多个属性,则它不能满足我的需求。

(?<=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函数,它支持正则表达式进行查询。

3 个答案:

答案 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)

你应该限制你的表达:

itemId:\s*'([^']+)

Live demo