У меня есть ниже возможных строк, и мне нужно сопоставить определенные символы.Regex - строка соответствия, которая с: и пространством
Возможные строки для соответствия:
dsg.1.2.3.4.5.6.7.5 = STRING: 1234 blah blah blah
OR
dsg.1.2.3.4.5.6.7.5 = STRING: "1234 blah blah blah"
Ниже Regex, что я попробовал. Она работает, но для 1-й строки, Это соответствие с «»
\=\s*STRING\:\s(?=\")\"([^"]*)|([^:]*$)
Чтобы соответствовать выше возможной строки, я использовал, если условие, которые соответствуют хорошо для dsg.1.2.3.4.5.6.7.5 = STRING: "1234 blah blah blah"
Не тот dsg.1.2.3.4.5.6.7.5 = STRING: 1234 blah blah blah
выходной вопрос после матча: нужен
2. [29-58] ` 1234 blah blah blah`
выхода:
1. [29-58] `1234 blah blah blah` --> No space
Пожалуйста, помогите мне в этом вопросе.
Это похоже на выход из 'snmpwalk'. Если вы используете SNMP-запросы, вы действительно должны использовать модуль, например [SNMP.pm] (https://metacpan.org/pod/SNMP) или [Net :: SNMP] (https://metacpan.org/pod/Net :: SNMP). – ThisSuitIsBlackNot
Этот символ '([^"] *) 'всегда будет соответствовать, или/чередование никогда не будет соответствовать. Это утверждение' (? = \ ") \" 'Всегда будет истинным, почему оно есть? Если это не так, ничто не будет соответствовать. Ни один из этих литералов не должен быть экранирован. Почему бы не показать код perl, который вы используете. И 'Нет пространства' =' [^ \ s] ' – sln