Вот что-то, что проходит все, кроме 2 ваших тестов.
val txt = Vector("Alpha USD" // -> USD
,"Alpha_US$" // _> US$
,"Alpha($)" // -> $
,"Alpha_$" // -> X desired but $ found
,"Alpha{USD}" // -> USD
,"Alpha(USDOCOLAND}" // -> X
,"Alpha USD" // -> USD
,"USD Alpha" // -> USD
,"Alpha USD USD" // -> USD
,"USD" // -> USD
,"Alpha USD$" // -> X desired but USD found
)
val re = """(US[D$]|\$)(?:\W|$)""".r.unanchored
txt.map{
case re(a) => a
case _ => "X"
}
В будущем, если вы хотите, чтобы люди помогали вам, опубликуйте тестовый код в формате, который можно легко скопировать и реализовать.
Основное использование, которое я имею для платформ CSS, состоит в том, что они склонны вынуждать Вас думать о том, как Вы собираетесь организовать Вас, кодируют, а не предоставляют Вам необходимые инструменты для Ваших повседневных задач.
По этой причине я - поклонник шаблона, а не вещей как проект, поскольку шаблон имеет тенденцию фокусироваться о том, как Вы структурируете свои таблицы стилей CSS и импорт вместо того, чтобы предоставить Вам набор семантически запутывающих классов помощника.
Они - просто удобство, и как таковой хороши для вещей как wireframing и быстрое прототипирование. Они - вероятно, также хороший способ изучить расположение CSS также, если можно ознакомиться с кодом расположения.
То, что мне не нравятся приблизительно платформы CSS, - то, что они поощряют использование имен несемантического класса и являются немного жестокими для более простые проекты. Я все еще думаю, что очень важно понять, как разметки CSS а не просто полагаться на платформы, потому что Вы ограничили бы свою креативность и чего Вы могли достигнуть. Иногда чтение файлов CSS от csszengarden сайта может преподавать Вам вещи, Вы не были уверены в том, как достигнуть.
Для wireframing это - самая многообещающая платформа CSS, которую я видел: http://designinfluences.com/fluid960gs/
Я думаю, что все зависит от Вашего собственного знания и проекта. Если у Вас есть много клиентов малого бизнеса, или по другим причинам делает много подобных проектов, я думаю, что это экономит некоторое время для использования платформ CSS. И Вы экономите время для браузера bugfixing, но необходимо всегда тестировать так или иначе.
Но если Ваши навыки CSS хороши, Вы знаете наиболее распространенные ошибки IE и как взломать их, я не вижу потребности использования платформы в большинстве случаев.
Таблица стилей сброса некоторого описания является стоящей начальной точкой.
Например:
учитывая, что Вы уже знакомы с одной конкретной платформой, это легче и более быстро, чтобы сделать определенные общие разметки сетки. Вы могли бы хотеть изучить и попытаться придерживаться платформы при выполнении большого количества CSS.
CSS проекта является платформой CSS, которую я предпочитаю.
Да, тестируя тестирование и больше тестирования. У Вас есть время, чтобы протестировать и отладить Ваш код во всех браузерах? Если Вы имеете, лучше написать Ваш собственный код. При необходимости в быстром решении, можно использовать некоторую платформу. Я записал одно сообщение об этом предмете: http://www.vcarrer.com/2008/08/when-to-use-css-framework.html
я думаю, что совместимость любого вида лучше всего достигается, когда мы объединяемся, обязан ли это использовать платформы CSS или JavaScript, там быть большим шансом, что ошибки будут исправлены, и желания исполнят. существует также шанс, что подобные интерфейсы уменьшают объем обучения, требуемого для новых пользователей Вашего сайта.
Я никогда не использовал бы платформу CSS. Они ничего не делают быстрее или легче, код увеличения чрезмерно увеличивают размер и делают отладку или тестирование намного тяжелее. Если я действительно использую платформу CSS для начала, она похожа на это:
тело {}
Каким образом Вам когда-либо были бы нужны больше, чем это? базовая начальная точка должна всегда быть тем, что браузер отображает по умолчанию, ничто больше.
Таблицы стилей CSS сброса вызывают те же проблемы.
например: http://withoutsubstance.blogspot.com/2008/09/why-you-should-never-ever-ever-use.html