Вложенная группа автоматически не приводит к катастрофическому обратному отскоку. В вашем случае это связано с тем, что ваше регулярное выражение вырождается в классический пример катастрофического обратного отсчета (a*)*
.
Поскольку \s
в необязательном в ^([a-zA-Z0-9'-]+\s?)*$
, на входе без каких-либо пробелов, но имеет символы вне разрешенных list, регулярное выражение просто вырождается до ^([a-zA-Z0-9'-]+)*$
.
Вы также можете думать о расширении исходного регулярного выражения:
[a-zA-Z0-9'-]+\s?[a-zA-Z0-9'-]+\s?[a-zA-Z0-9'-]+\s?[a-zA-Z0-9'-]+\s?...
Поскольку \s
является необязательным, мы можем удалите его:
[a-zA-Z0-9'-]+[a-zA-Z0-9'-]+[a-zA-Z0-9'-]+[a-zA-Z0-9'-]+...
И мы получили серию последовательных [a-zA-Z0-9'-]+
, которые будут пытаться использовать все способы распространения символов между собой и взорвать сложность.
Стандартный способ записи регулярного выражения в соответствие с token delimiter token ... delimiter token
- token (delimiter token)*
. Хотя можно переписать регулярное выражение, не повторять token
, я бы рекомендовал против него, так как это сложно сделать правильно. Чтобы избежать повторения, вы можете захотеть создать регулярное выражение путем конкатенации строк.
Следуя рецепту выше:
^[a-zA-Z0-9'-]+(\s[a-zA-Z0-9'-]+)*$
Хотя вы можете видеть повторение в повторении здесь, нет катастрофическое обратное отслеживание, поскольку регулярное выражение может расширяться только до:
[a-zA-Z0-9'-]+\s[a-zA-Z0-9'-]+\s[a-zA-Z0-9'-]+\s[a-zA-Z0-9'-]+...
И \s
и [a-zA-Z0-9'-]
взаимно исключают друг друга - есть только один способ сопоставления любой строки.
Шаг 2. Совместное использование реестра как WSO2 API Manager, так и WSO2 Identity Server. См. Разделение пространства реестра для шагов.
blockquote>
Что я не могу получить. И как это сделать. И что это значит.Общий доступ к реестру - вы можете следовать документации https://docs.wso2.com/display/AM260/Install+and+Configuring+the+Databases
[118 ] для обоих продуктов (AM и IS):
- создать общую отдельную базу данных для реестра (например, regdb)
- настроить regdb в master-datasources.xml
[ 115] настроить реестр для использования базы данных общего реестра (точка 12а)
<dbConfig name="govregistry"> <dataSource>jdbc/WSO2REG_DB</dataSource> </dbConfig> <remoteInstance url="https://localhost:9443/registry"> <id>gov</id> <cacheId>user@jdbc:mysql://db.mysql-wso2.com:3306/regdb</cacheId> <dbConfig>govregistry</dbConfig> <readOnly>false</readOnly> <enableCache>true</enableCache> <registryRoot>/</registryRoot> </remoteInstance> <mount path="/_system/governance" overwrite="true"> <instanceId>gov</instanceId> <targetPath>/_system/governance</targetPath> </mount> <mount path="/_system/config" overwrite="true"> <instanceId>gov</instanceId> <targetPath>/_system/config</targetPath> </mount>