Мое текущее регулярное сражение заменяет все запятые перед номером в строке. Регулярное выражение должно игнорировать все следующие запятые. Я натягивал около рубля в течение часа и, похоже, не мог заставить что-то работать.Регулярные выражения с lookahead в Ruby
Test Строка ...
'this is, a , sentence33 Here, is another.'
Желаемая выход ...
'this is comma a comma sentence33 Here, is another.'
Так что-то вдоль линий ...
testString.gsub(/\,*\d\d/,"comma")
Чтобы дать Вам некоторый фон, Я делаю небольшой соскабливающий побочный проект. Элементы, которые я собираю, в основном разделены запятыми, начиная с двухзначного возраста. Однако иногда theres заголовок предшествует возрасту, который может содержать запятые. Чтобы сохранить структуру, которую я установил позже, мне нужно заменить запятые в заголовке.
Попробовав ОТВЕТ Stack Overflow'S ...
я все еще возникают некоторые проблемы. Не смейтесь, но вот фактическая линия от экрана выскабливание Thats вызывают проблемы ...
statsString = " 23, 5'9\", 140lb, 29w, Slim, Brown Hair, Shaved Body, White, Looking for Friendship, 1-on-1 Sex, Relationship. Out Yes,SmokeNo,DrinkNo,DrugsNo,ZodiacCancer. Versatile, 7.5\" Cut, Safe Sex Only, HIV Negative, Prefer meeting at:Public Place. PerformerContact xxxxxx87 This user has TURNED OFF his IM Send Smile Write xxxxxx87 a message:"
Во-первых, чтобы все эти фрагменты я добавить «XX» так, что моя фильтрация запятой будет работать во всех случаях, те, с текстом и без него. Далее следует фактическое исправление. Выход ниже ...
statsString = 'xx, ' + statsString
statsString = statsString.gsub(/\,(?=.*\d)/, 'comma');
=> "xxcomma 23comma 5'9\"comma 140lbcomma 29wcomma Slimcomma Brown Haircomma Shaved Bodycomma Whitecomma Looking for Friendshipcomma 1-on-1 Sexcomma Relationship. Out YescommaSmokeNocommaDrinkNocommaDrugsNocommaZodiacCancer. Versatilecomma 7.5\" Cutcomma Safe Sex Onlycomma HIV Negativecomma Prefer meeting at:Public Place. PerformerContact xxxxx87 This user has TURNED OFF his IM Send Smile Write xxxxxxx87 a message:"
Почему не запятая после 'Here' заменить? Потому что 'Here' начинается с заглавной буквы? Вам нужно предоставить более подробную информацию о ваших требованиях. И, возможно, еще несколько примеров ввода и желаемого вывода. Вы говорите «замена запятых перед номером», но это не то, что делает ваш пример. – alan
Выполнение этого в одном регулярном выражении кажется обреченным на провал; это проблема домашней работы, которая должна быть решена таким образом или вы просто пытаетесь решить проблему и застряли в мышлении, что regexp - лучший способ ее решить? – sarnold
Просто добавьте некоторую справочную информацию в вопрос. Спасибо за ответ. –