C # Regex. Это регулярное выражение не совсем делает работу - PullRequest
0 голосов
/ 06 октября 2009

Я пытаюсь разделить их на токены, и это в основном там. Я действительно хочу разделить первичные токены на NIGHT, set, шаблон xpath, значение, которое нужно назначить шаблону xpath, то есть во втором, 'high' и во втором, 'take-offline' и ' - 'и' + '.

NIGHT.set('.//idmef:Source[1]','+')
NIGHT.set('.//idmef:Assessment/idmef:Impact/@severity', 'high')
NIGHT.set('/idmef:IDMEF-Message/idmef:Alert/idmef:Source[1]/@ident', 'taken-offline', '-')

Это выражения, которые отображают XML в определенное состояние шаблона. Но когда я запускаю следующее регулярное выражение для них, я все равно, кажется, оставляю их внутри.

public static string[] Tokenize(string ActionItem)
{
   Regex RE = new Regex(@"([(\.\//\s\;\,\:\.\)]+)");
   return (RE.Split(ActionItem));
}   

Когда я запускаю его, я получаю следующее:

NIGHT
.
set
(
'
.//
idmef
:
Assessment
/
idmef
:
Impact
/
@severity'
,
'high'
)


NIGHT
.
set
(
'
.//
idmef
:
Source[1]'
,
'+'
)


NIGHT
.
set
(
'
/
idmef
:
IDMEF-Message
/
idmef
:
Alert
/
idmef
:
Source[1]
/
@ident'
,
'taken-offline'
,
'-'

Это то, что, я не знаю, как вы это называете, одиночная кавычка, она все еще остается в.

Что я делаю не так?

1 Ответ

0 голосов
/ 06 октября 2009

Попробуйте этот шаблон, здесь отлично работает. Он соответствует «», но не включает его в результат разбиения (следовательно, он находится за скобками

'?([(\.\//\s\;\,\:\.\)]+)'?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...