Java regex: проблема с двойными кавычками и границей слов [duplicate]

grouperArray.sort(function (a, b) {
  var aSize = a.gsize;
  var bSize = b.gsize;
  var aLow = a.glow;
  var bLow = b.glow;
  console.log(aLow + " | " + bLow);      
  return (aSize < bSize) ? -1 : (aSize > bSize) ? 1 : ( (aLow < bLow ) ? -1 : (aLow > bLow ) ? 1 : 0 );
});
0
задан Olivier Masseau 18 January 2019 в 09:18
поделиться

1 ответ

Более простым способом сделать это было бы удалить границу слова и проверить для TEST "A" и \s (пробел / перевод строки) впоследствии. Попробуйте это регулярное выражение: TEST "A"\s. Он хорошо работает во всех предоставленных вами случаях:

const regex = /TEST "A"\s/;

console.log(regex.test(`aaa TEST "A" aaa`));
//=> true

console.log(regex.test(`aaa TEST "A"\n`));
//=> true

console.log(regex.test(`aaa TEST "A"aaa`));
//=> false

(фрагмент выше приведен в JavaScript, но регулярное выражение будет работать в Java тоже самое)


Редактировать: Как @slartidan предложил ниже, если регулярное выражение также должно соответствовать aaa TEST "A", вы должны использовать это регулярное выражение вместо: TEST "A"(\s|$):

[1116 ]
const regex = /TEST "A"(\s|$)/;

console.log(regex.test(`aaa TEST "A"`));
//=> true

0
ответ дан Itai Steinherz 18 January 2019 в 09:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: