正则表达式:仅忽略同时满足前瞻和后视的字符
RegEx: Ignoring only characters that meet both lookahead and lookbehind
我正在尝试解析 Ruby 中的文件以使其有效 JSON。它使用单引号,所以我需要替换它们。
但它在单词中也使用单引号作为所有格。我正在尝试使用正则表达式仅获取前面没有字母和后面没有字母的单引号,但到目前为止,我忽略了前面有字母或后面有字母的任何内容。
正则表达式 (?<![a-zA-Z])'(?![a-zA-Z])
测试字符串'id': '4da7680f-3449-303f-8e79-d2abe665cbe9', 'phone_numbers': ['4108286112']}]}, {'email': None, 'gender': '', 'first_name': None, 'id': 1659439495, 'last_name': None, 'middle_name': None, 'network_ids': [100494], 'organization_name': "CHARLOTTE'S HAIR LINE INC.", 'phone': '4109334800'
您可以使用以下模式:
'(?!(?<=[a-zA-Z]')[a-zA-Z])
详情
'
- 单引号
(?!(?<=[a-zA-Z]')[a-zA-Z])
- 如果在当前位置的右侧('
之后)存在匹配失败的否定前瞻
(?<=[a-zA-Z]')
-(正后向匹配)一个紧接 ASCII 字母和 '
的位置
[a-zA-Z]
- 一个 ASCII 字母。
我正在尝试解析 Ruby 中的文件以使其有效 JSON。它使用单引号,所以我需要替换它们。
但它在单词中也使用单引号作为所有格。我正在尝试使用正则表达式仅获取前面没有字母和后面没有字母的单引号,但到目前为止,我忽略了前面有字母或后面有字母的任何内容。
正则表达式 (?<![a-zA-Z])'(?![a-zA-Z])
测试字符串'id': '4da7680f-3449-303f-8e79-d2abe665cbe9', 'phone_numbers': ['4108286112']}]}, {'email': None, 'gender': '', 'first_name': None, 'id': 1659439495, 'last_name': None, 'middle_name': None, 'network_ids': [100494], 'organization_name': "CHARLOTTE'S HAIR LINE INC.", 'phone': '4109334800'
您可以使用以下模式:
'(?!(?<=[a-zA-Z]')[a-zA-Z])
详情
'
- 单引号(?!(?<=[a-zA-Z]')[a-zA-Z])
- 如果在当前位置的右侧('
之后)存在匹配失败的否定前瞻(?<=[a-zA-Z]')
-(正后向匹配)一个紧接 ASCII 字母和'
的位置
[a-zA-Z]
- 一个 ASCII 字母。